---
title: UML图
description: UML图
sidebar_position: 2
tags: [UML]
---

## 概述
统一建模语言（Unified Modeling Language，UML）是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态和静态信息。

UML 分为静态结构图和动态结构图：
* 静态结构图： <RedSpan>类图</RedSpan>、对象图、组件图、部署图
* 动态行为图：状态图、活动图、时序图、协作图、构件图等

## 类图
类图反映的是 <RedSpan>类结构</RedSpan>和 <RedSpan>类之间关系</RedSpan>为目的，用以描述软件系统的结构，是一种静态建模方法。

### 类结构的表示

```java
public class Human{
    private String name;
    private int age

    public void eat(){

    }
}
```
在类的 UML 种，使用长方形描述一个类的主要构成，长方形垂直的分为三层，一次放置类的 <RedSpan>名称</RedSpan>、<RedSpan>属性</RedSpan>和 <RedSpan>方法</RedSpan>。

![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site20250620001127.png)

* + public
* - private
* `#` protected
*  不带符号表示 default


抽象类在 UML 种用同样的矩形框来表示，但是抽象类的类名以及抽象方法的名字都用斜体字表示，如下图所示：

![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site20250620001426.png)

接口在类图中也是用矩形表示的，但是与类的表示法不同的是，接口在类图中的第一层顶端用构造型 `<<interface>>` 表示，下面是接口的名字，第二层是方法。

![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site20250620001633.png)

### 类之间关系的表示
类与类、类与接口、接口与接口之间存在一定关系，UML 类图中一般会有连线指明它们之间的关系。
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site/20250623223209.png)


#### 实现关系和泛化关系
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site/20250624001236.png)
#### 关联关系

![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site/20250624001252.png)

#### 聚合关系
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site/20250624001354.png)
#### 组合关系
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site/20250624001413.png)
#### 依赖关系
![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site/20250624001438.png)
